# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
pkgname=networkmanager-elogind
pkgver=1.26.0
pkgrel=0
pkgdesc="Network Management daemon (with elogind hibernation support)"
url="https://wiki.gnome.org/Projects/NetworkManager"
arch="all"
license="GPL-2.0-or-later"
depends="iptables dbus mobile-broadband-provider-info openresolv"
install="$pkgname.pre-install $pkgname.pre-upgrade"
makedepends="$depends_dev
	curl-dev
	dbus-glib-dev
	eudev-dev
	libgudev-dev
	gobject-introspection-dev
	intltool
	libndp-dev
	libnl3-dev
	libsoup-dev
	libteam-dev
	linux-headers
	modemmanager-dev
	newt-dev
	nss-dev
	polkit-dev
	ppp-dev
	readline-dev
	util-linux-dev
	jansson-dev
	vala
	meson
	py3-gobject3
	libpsl-dev
	python3
	elogind-dev
	"
subpackages="
	$pkgname-dev
	$pkgname-doc
	$pkgname-lang
	$pkgname-openrc
	$pkgname-bash-completion:bashcomp:noarch
	"
source="$pkgname-$pkgver.tar.xz::https://download.gnome.org/sources/NetworkManager/${pkgver:0:4}/NetworkManager-$pkgver.tar.xz
	networkmanager.conf
	networkmanager.initd
	networkmanager.rules
	README.alpine
	musl-basic.patch
	musl-network-support.patch
	musl-fix-includes.patch
	musl-process-util.patch
	musl-compar.patch
	musl-no-drand.patch
	py3.patch
	"
options="!check" # fail to compile on musl
provides="networkmanager"

install_if="networkmanager elogind"

builddir="$srcdir"/NetworkManager-$pkgver

build() {
	meson \
		--prefix=/usr \
		--sysconfdir=/etc \
		--localstatedir=/var \
		--buildtype=plain \
		-Dsystemdsystemunitdir=no \
		-Dudev_dir=/lib/udev \
		-Diptables=/sbin/iptables \
		-Ddnsmasq=/usr/sbin/dnsmasq \
		-Dmodify_system=true \
		-Dselinux=false \
		-Dsystemd_journal=false \
		-Dlibaudit=no \
		-Diwd=true \
		-Dpppd=/usr/sbin/pppd \
		-Dconfig_plugins_default=ifupdown \
		-Difupdown=true \
		-Ddhcpcd=true \
		-Dconfig_dhcp_default=internal \
		-Dvapi=true \
		-Dtests=no \
		-Dpolkit_agent=true \
		-Dsession_tracking=elogind \
		-Dsuspend_resume=elogind \
		-Dresolvconf=/usr/sbin/resolvconf \
		-Dqt=false \
		-Dofono=true \
		. output
	ninja -C output introspection/libnmdbus.a
	ninja -C output
}

check() {
	ninja -C output test
}

package() {
	DESTDIR="$pkgdir" ninja -C output install

	install -m755 -D "$srcdir"/networkmanager.initd "$pkgdir"/etc/init.d/networkmanager
	install -m644 -D "$srcdir"/networkmanager.conf "$pkgdir"/etc/NetworkManager/NetworkManager.conf
	# allow plugdev users to modify connections
	install -m644 -D "$srcdir"/networkmanager.rules \
		"$pkgdir"/usr/share/polkit-1/rules.d/01-org.freedesktop.NetworkManager.settings.modify.system.rules
	mkdir -p "$pkgdir"/usr/share/apk-tools/$pkgname
	# post-install message
	mv "$pkgdir"/usr/share/doc/NetworkManager "$pkgdir"/usr/share/doc/$pkgname
	install -Dm0644 "$srcdir"/README.alpine -t "$pkgdir"/usr/share/doc/$pkgname
}

dev() {
	provides="networkmanager-dev"

	default_dev
}

doc() {
	provides="networkmanager-doc"

	default_doc
}

lang() {
	provides="networkmanager-lang"

	default_lang
}

openrc() {
	provides="networkmanager-openrc"

	default_openrc
}

bashcomp() {
	provides="networkmanager-bash-completion"
	depends=""
	pkgdesc="Bash completions for $pkgname"
	install_if="$pkgname=$pkgver-r$pkgrel bash-completion"

	amove usr/share/bash-completion
}
sha512sums="46035fda8f154497ba4a634e4bf7f0a11f579d0d3f4ffdcea7d47ea0bde6dd0183885491f5453255af7b163ae3db4f0c62c3161913a8c30c35b6475887235b6d  networkmanager-elogind-1.26.0.tar.xz
a6e507260e2ceffad4cacb2b49a1d4f6b933e5ae8bc50c1bd56f828298c5dc8d9d17aa4be766faeacefbe3c6c0c748e4ef499a55bb5ee40f0f04bbf766fbbc82  networkmanager.conf
5ac6d11b588c479de9c7e1fef79ed0a2c04dc159a2173636a6a77a2867c839cc1609860756109e9e794f23a02238a6d94834d8fb6fcb81a6be3ef1dbf4a34e6f  networkmanager.initd
9820ed2ead0af689644842de57657bb10330a1eaff0e85b21ae9913f55e399e47d8b41b0a12956f30de80272b4424c6e55f33acbc88e156879003a260bf576f6  networkmanager.rules
744570b30738f0603fe1b83d8f2051277c7bd908bb226e45339b791334d8c2baf4c185a3118bf7739c780e2938dfc11d08f4fc8b3ae6398305f28e528e16c1a2  README.alpine
9d1a9185b0b50f677a4173a8b67e808ba36971111165ae446e9a15b5c7adcc8cc6d44fa7bddac05762c50d80b04818a483756eaf2aaefe0162e1f37cd070fca4  musl-basic.patch
095c1d944f3274ba31435cd1af8e2affb4187bdd921a0cc0c185b59810b73cfab7919b5f551bab3d9e4644fbee8f9ac017b4c5d69a771fb68319cbefa37c71a3  musl-network-support.patch
6bbd69084c8ad6171a7d230cbb814cef17c9b85764e94485defa5c223eda10189fa3c9ebbfabc7fc719a5ee8d687d6ebd5a130b4208040cb3b6ea8605101c0bf  musl-fix-includes.patch
b5cd94928ca3ba1fb71aec28d9ff66f319f6d23131e02c90f1dfbfaf16c537935228a9981c95f29ffb74e91752a17801c94d09ca57b7ba98028262b9e8e5d322  musl-process-util.patch
634377674691b52da80ca4c445a727d39cd40269f7deef0d3ccc1e1041cc262e8bc1423200e9a2b0cf1804e9950059ebbbc827f1200c6a97c58bc76080a6d6d2  musl-compar.patch
342fb3eef0e7057b6d8f1a00687af17dc633387d8a25d475e3e9c8de5712221eec8ada634a189e3458dcbb12b20625b99b552acda3927b5baa61b960ce5740eb  musl-no-drand.patch
8f7bb0128881cd281f4f9b2335d9788cde715d9fc29c295bad234b97a2df9e5ed99061da4806702d9ab8aa163711ffa283e82216ea8d714bb54d2b37aa2607cb  py3.patch"
